import matplotlib.pyplot as plt
import numpy as np
import os

from matplotlib import pyplot as plt


def plotAirfoilCp(coordinates, label_list=None, save_path=None):
    """
        在同一张图上展示一系列翼型的压力分布图
    :param coordinates: 坐标（坐标列表）
    :param label_list: 标签列表（非必要）
    :param save_path: 保存图片路径（非必要）
    :return:
    """

    plt.rc('font', family='Latin Modern Roman')

    linestyle_list = ['solid',
                      ':', '--', '-.',
                      ':', '--', '-.']
    color_list = ["black", "red", "blue", "red", "blue", "red", "blue"]
    long = 7
    height = 6.6

    fig = plt.figure(figsize=(long, height), dpi=80)
    fig.canvas.draw()

    if isinstance(coordinates, list):
        for i, crd_i in enumerate(coordinates):
            crd_i = np.concatenate([crd_i, crd_i[0].reshape(-1, 2)], axis=0)
            plt.plot(crd_i[:, 0], -crd_i[:, 1],
                     linewidth=1,
                     linestyle=linestyle_list[i % len(linestyle_list)],
                     label=None if label_list is None else label_list[i % len(label_list)],
                     c=color_list[i % len(color_list)])
    else:
        plt.plot(coordinates[:, 0], -coordinates[:, 1],
                 linewidth=1,
                 linestyle=linestyle_list[0],
                 label=None if label_list is None else label_list[0],
                 c=color_list[0])

    font = {
        'weight': 'normal',
        'size': 16,
    }

    # 横纵坐标标题
    plt.xlabel("X/C", font)
    plt.ylabel(r"$-C_p$", font)

    font1 = 13

    # 横纵坐标刻度
    plt.xticks(size=font1)
    plt.yticks(size=font1)

    plt.xlim((-0.01, 1.01))
    plt.ylim((-1.15, 1.6))
    plt.legend(fontsize=font1)
    plt.grid()

    if save_path is not None:
        plt.savefig(save_path, dpi=1000, bbox_inches='tight')
    else:
        plt.show()

    plt.close()
